﻿/**
 *
 * @file OperNCTMultiple.h
 * @brief 多重声学包操作器
 * @author wangning (2185896382@qq.com)
 * @date 2024-12-16
 *
 */
#ifndef _OPER_NCT_Multiple__H___
#define _OPER_NCT_Multiple__H___

#include "OperatorsInterface/OperAbstractNCT.h"

namespace ModelOper
{
    /**
     * @brief 多层声学包操作器
     * @author wangning (2185896382@qq.com)
     * @date 2024-12-16
     */
    class OperNCTMultiple : public EventOper::OperAbstractNCT
    {
    public:
        /**
         * @brief Construct a new Oper NCT object
         * @author LiBaojun (libaojunqd@foxmail.com)
         * @date 2024-12-05
         */
        explicit OperNCTMultiple() = default;
        /**
         * @brief Destroy the Oper NCT object
         * @author LiBaojun (libaojunqd@foxmail.com)
         * @date 2024-12-05
         */
        virtual ~OperNCTMultiple() = default;
        /**
         * @brief 执行UI操作
         * @return true
         * @return false
         * @author LiBaojun (libaojunqd@foxmail.com)
         * @date 2024-12-06
         */
        bool execGUI() override;
        /**
         * @brief 执行业务操作
         * @return true
         * @return false
         * @author LiBaojun (libaojunqd@foxmail.com)
         * @date 2024-12-06
         */
        bool execProfession() override;

        /**
         * @brief 创建声学包
         * @author wangning (2185896382@qq.com)
         * @date 2024-12-10
         */
        virtual void createNCT() override;
        /**
         * @brief 复制声学包
         * @param[i]  nctID          声学包id
         * @author wangning (2185896382@qq.com)
         * @date 2024-12-10
         */
        virtual void duplicateNCT(const int nctID) override;
        /**
        * @brief 编辑声学包
        * @param[i]  nctID          声学包id
        * @author wangning (2185896382@qq.com)
        * @date 2024-12-10
        */
        virtual void editNCT(const int nctID) override;
        /**
         * @brief 删除声学包
         * @param[i]  nctID          声学包id
         * @author wangning (2185896382@qq.com)
         * @date 2024-12-10
         */
        virtual void removeNCT(const int nctID) override;

    };
    //注册对象
    Register2FITKOperatorRepo(OperNCTMultiple, OperNCTMultiple);
    Register2FITKOperatorRepo(actionMultipleNoiseControlTreatment, OperNCTMultiple);

}

#endif